/*
1. 页面打开onshow
 1 onShow无法在形参上接受参数
    判断缓存有误token
    没有 跳到授权界面
    有 直接获取
 2 获取URL参数type
 根据type来决定页面标题的数组元素那个被激活选中
 3 发送请求获取数据
 4 渲染页面
2.点击不同标题 重新发送请求渲染数据
*/
import { request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

    /**
     * 页面的初始数据
     */
    data: {
        orders: [],
        tabs: [{
                id: 0,
                value: "全部",
                isActive: true
            },
            {
                id: 1,
                value: "待付款",
                isActive: false
            },
            {
                id: 2,
                value: "待发货",
                isActive: false
            },
            {
                id: 3,
                value: "退款退货",
                isActive: false
            }
        ],
        goodsList: []
    },
    onShow(options) {
        const token = wx.getStorageSync("token");
        if (!token) {
            wx.navigateTo({
                url: '/pages/auth/index'
            });
            return;
        }
        //1 获取当前小程序的页面栈-数组 长度最大为10页面 
        let pages = getCurrentPages();
        //2 数组中 索引最大的页面就是当前页面
        let currentPages = pages[pages.length - 1];
        //获取urltype参数
        const { type } = currentPages.options;
        //激活选中标题
        this.changeTitleByIndex(type - 1);
        this.getOrders(type);
    },
    //获取订单列表的方法
    async getOrders(type) {
        const res = await request({ url: "/my/orders/all", data: { type } });
        this.setData({
            orders: res.orders.map(v => ({...v, create_time_cn: (new Date(v.create_time * 1000).toLocaleString()) }))
        })
    },
    //根据标题索引来激活选中标题数组
    changeTitleByIndex(index) {
        // 修改原数组
        let { tabs } = this.data;
        tabs.forEach((v, i) => i === index ? v.isActive = true : v.isActive = false);
        //赋值到data
        this.setData({
            tabs
        })
    },
    handleTabsItemChange(e) {
        // 1 获取被点击标题索引
        const { index } = e.detail;
        this.changeTitleByIndex(index);
        //重新发送请求 type=1 index=0
        this.getOrders(index + 1);
    },

})